package com.tul.vapp.servicecenter.util;

/**
 * 设置Int的各个byte，将byte array转换成hex string
 * 
 * @author Jason Song(song_s@ctrip.com)
 */
public class ByteUtil {

	private static final char[] HEX_CHARS = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b',
		'c', 'd', 'e', 'f' };

	/**
	 * 获取int的第3字节
	 * 
	 * @param x int
	 * @return 第3字节
	 */
	public static byte int3(final int x) {
		return (byte) (x >> 24);
	}

	/**
	 * 获取int的第2字节
	 * 
	 * @param x int
	 * @return 第2字节
	 */
	public static byte int2(final int x) {
		return (byte) (x >> 16);
	}

	/**
	 * 获取int的第1字节
	 * 
	 * @param x int
	 * @return 第1字节
	 */
	public static byte int1(final int x) {
		return (byte) (x >> 8);
	}

	/**
	 * 获取int的第0字节
	 * 
	 * @param x int
	 * @return 第0字节
	 */
	public static byte int0(final int x) {
		return (byte) (x);
	}

	/**
	 * byte to hex
	 * 
	 * @param bytes byte array
	 * @return 十六进制
	 */
	public static String toHexString(byte[] bytes) {
		char[] chars = new char[bytes.length * 2];
		int i = 0;
		for (byte b : bytes) {
			chars[i++] = HEX_CHARS[b >> 4 & 0xF];
			chars[i++] = HEX_CHARS[b & 0xF];
		}
		return new String(chars);
	}
}
